package array

import "fmt"

// 切片内置函数
func InnerFunc() {
	// append函数，相当于add()+addAll()
	var arr = [5]int{1, 2, 3, 4, 5}
	var slice = arr[1:4]
	// 增加元素，也可以增加同类型切片。末尾...是固定写法
	slice = append(slice, slice...)
	slice = append(slice, 77)
	fmt.Println("slcie = ", slice)

	// copy函数
	var slice2 []int = []int{1, 2, 3, 4, 5, 6}
	var a []int = make([]int, 10)
	var b []int = make([]int, 4)
	copy(a, slice2)        // 容量够用时，多余位置保持原值
	copy(b, slice2)        // 容量不够用时，从前到后依次赋值，多余的舍弃
	fmt.Println("a = ", a) // [1 2 3 4 5 6 0 0 0 0]
	fmt.Println("b = ", b) // [1 2 3 4]
}
